#ifndef _RADIAN_RESOURCE_LOADING_LISTENER_H_
#define _RADIAN_RESOURCE_LOADING_LISTENER_H_

#include "RadianCommon.h"
#include "OgreResourceGroupManager.h"
/* The RadianResourceLoadingListener
*/
class RadianResourceLoadingListener : public Ogre::ResourceGroupListener
{
public:
	RadianResourceLoadingListener();
	virtual ~RadianResourceLoadingListener();

public: 

	/* Overrides form Ogre::ResourceGroupListener.
	*/
	virtual void resourceGroupScriptingStarted(const Ogre::String& groupName, size_t scriptCount);

	virtual void scriptParseStarted(const Ogre::String& scriptName, bool& skipThisScript);

	virtual void scriptParseEnded(const Ogre::String& scriptName, bool skipped);

	virtual void resourceGroupScriptingEnded(const Ogre::String& groupName);

	virtual void resourceGroupLoadStarted(const Ogre::String& groupName, size_t resourceCount);

	virtual void resourceGroupLoadEnded(const Ogre::String& groupName);

	virtual void resourceGroupPrepareEnded(const Ogre::String& groupName);

	virtual void resourceLoadStarted(const Ogre::ResourcePtr& resource);

	virtual void resourceLoadEnded(void);	

	virtual void worldGeometryStageStarted(const Ogre::String& description);

	virtual void worldGeometryStageEnded(void);


private:
	unsigned long m_LoadingCout;
	Ogre::String m_LoadingResName;
	
};
#endif